package pattern7;

/**
 * 定义一个抽象的模板
 * @author wdl
 */
public abstract class AbstractClass {
    /**
     * 将一些抽象的行为放到子类去实现
     */
    protected abstract void primitiveOperation1();
    /**
     * 将一些抽象的行为放到子类去实现
     */
    protected abstract void primitiveOperation2();


    /**
     * 模板方法，给出逻辑的骨架，而逻辑的组成是一些相应的抽象操作，它们被延迟到子类去实现
     */
    public final void templateMethod(){
        System.out.println("开始");
        primitiveOperation1();
        primitiveOperation2();
        System.out.println("完成");
    }
}
